﻿//======================================================================
//
//        Copyright (C) 2015   
//        All rights reserved
//
//        filename : C_Amortize
//        description : 问题卡片成本摊销表
//        created by XXX at  20160504
//
//======================================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using CardLogistics.DAL;
using System.Text;
using CardLogistics.Web.Components;

namespace CardLogistics.Web.MainPage.Report.DepReport
{
    public partial class C_Amortize : BasePage
    {
        private static readonly DepReportData DepDAL = new DepReportData();

        #region 查询
        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_Search_Click(object sender, EventArgs e)
        {
            if (txt_StartData.Text.Trim().Length > 0 && txt_EndData.Text.Trim().Length > 0)
            {
                string startV = txt_StartData.Text;//统计开始日期
                string endV = txt_EndData.Text;//统计结束日期
                BindData(startV, endV);
            }
            else
                ShowMessageBox("请选择统计时间段！");
        }
        #endregion

        #region 绑定数据
        /// <summary>
        /// 绑定数据
        /// </summary>
        /// <param name="startData"></param>
        /// <param name="endData"></param>
        private void BindData(string startData, string endData)
        {
            DataTable dt = DepDAL.GetCAmortize(startData, endData);
            StringBuilder sbStr = new StringBuilder();
            sbStr.Append("<div style='text-align: center; font-size: 25px; font-weight: bold'>问题卡片成本摊销表</div>");
            sbStr.Append("<table  style='border:0;width:100%;'><tr><td colspan='2' style='border:0;text-align:right;'>填报部门:</td><td colspan='7' style='border:0;text-align:center;'>统计时段:" + DateTime.Parse(startData).ToString("yyyyMMdd") + "-" + DateTime.Parse(endData).ToString("yyyyMMdd") + "</td><td  colspan='2' style='border:0;text-align:left;'>制表时间:" + DateTime.Now.ToString("yyyy-MM-dd") + "</td></tr></table>");
            sbStr.Append("<table  border='1' style='font-size:16px;white-space: nowrap; '>");
            //创建列
            sbStr.Append("<tr>");
            sbStr.Append("<td>卡类型</td>");
            sbStr.Append("<td>厂家名称</td>");
            sbStr.Append("<td>合同号</td>");
            sbStr.Append("<td>批次号</td>");
            sbStr.Append("<td>初始化坏卡</td>");
            sbStr.Append("<td>未发售废卡</td>");
            sbStr.Append("<td>其他</td>");
            sbStr.Append("<td>张数合计</td>");
            sbStr.Append("<td>购入单价</td>");
            sbStr.Append("<td>购入总价</td>");
            sbStr.Append("<td>备注</td>");
            sbStr.Append("</tr>");
            //列赋值
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                sbStr.Append("<tr>");
                sbStr.Append("<td style='width:70px'>" + dt.Rows[i]["cardtypename"].ToString() + "</td>");//卡类型
                sbStr.Append("<td>" + dt.Rows[i]["SuppliersName"].ToString() + "</td>");//厂家名称
                sbStr.Append("<td>" + dt.Rows[i]["PConNo"].ToString() + "</td>");//合同号
                sbStr.Append("<td>" + dt.Rows[i]["BatchNo"].ToString() + "</td>");//批次号
                sbStr.Append("<td>" + dt.Rows[i]["InitBadCard"].ToString() + "</td>");//初始化坏卡
                sbStr.Append("<td>" + dt.Rows[i]["NoScrap"].ToString() + "</td>");//未发售废卡
                sbStr.Append("<td>" + dt.Rows[i]["Other"].ToString() + "</td>");//其他
                sbStr.Append("<td>" + dt.Rows[i]["SumCount"].ToString() + "</td>");//张数合计
                sbStr.Append("<td>" + dt.Rows[i]["Price"].ToString() + "</td>");//购入单价
                sbStr.Append("<td>" + dt.Rows[i]["TotalPrice"].ToString() + "</td>");//购入总价
                sbStr.Append("<td>" + dt.Rows[i]["Remark"].ToString() + "</td>");//备注
                sbStr.Append("</tr>");
            }
            //创建合计行
            sbStr.Append("<tr>");
            sbStr.Append("<td>合计</td>");
            sbStr.Append("<td></td>");
            sbStr.Append("<td></td>");
            sbStr.Append("<td></td>");
            sbStr.Append("<td>" + dt.Compute("sum(InitBadCard)", "true").ToString() + "</td>");
            sbStr.Append("<td>" + dt.Compute("sum(NoScrap)", "true").ToString() + "</td>");
            sbStr.Append("<td>" + dt.Compute("sum(Other)", "true").ToString() + "</td>");
            sbStr.Append("<td>" + dt.Compute("sum(SumCount)", "true").ToString() + "</td>");
            sbStr.Append("<td></td>");
            sbStr.Append("<td>" + dt.Compute("sum(TotalPrice)", "true").ToString() + "</td>");
            sbStr.Append("<td></td>");
            sbStr.Append("</tr>");
            d_info.InnerHtml = sbStr.ToString() + "</table>";
        }
        #endregion

        #region 导出
        /// <summary>
        /// 导出
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnExport_Click(object sender, EventArgs e)
        {
            if (d_info.InnerHtml.Length > 50)
            {
                ExportExcel(txt_StartData.Text, d_info);
            }
            else
                ShowMessageBox("请先查询出报表内容！");
        }
        #endregion
    }
}